package com.js.core.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.js.core.dto.ArticleDto;
import com.js.core.entity.Article;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/***
 *
 * @Auther: MuYun
 * @Date: 2024/7/24 17:52
 * @Description：
 *
 */
@Mapper
public interface ArticleMapper extends BaseMapper<Article> {

    //使用 FOR UPDATE 时，查询会对所选的行加上排他锁（exclusive lock）。这意味着在当前事务完成之前，其他事务无法更新或删除这些行。
    @Select("SELECT * FROM j_article WHERE id = #{id} FOR UPDATE")
    Article selectByIdWithLock(String id);

    List<ArticleDto> queryArticleAndContent();

    void saveOrUpdateArt(ArticleDto article);
}
